//package com.hwh.springdatajpademo.config;
//
//import com.hwh.springdatajpademo.pojo.Pet;
//import com.hwh.springdatajpademo.pojo.Role;
//import com.hwh.springdatajpademo.pojo.User;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
///**
// * 1.配置类里使用@Bean标注在方法上给容器注册组件，默认是单实例
// * 2.配置类本身也是组件
// * 3.proxyBeanMethod：代理Bean的方法
// *   full：(proxyBeanMethod=true) 无论在那里调用，都会从容器中获取组件,可以实现组件依赖
// *   lite:(proxyBeanMethod=false) 容器中不会保存代理对象，每次调用都会产生新的对象.
// *   优缺点：
// *      lite模式可以跳过检查，提高运行速度。full模式需要检查，运行速度相对较慢。
// *   最佳实践：
// *      如果该配置类里没有组件依赖，那就是使用lite模式。否则使用full模式。
// */
//@Configuration(proxyBeanMethods = true)
//public class BeanConfig {
//
//    @Bean
//    public User user01(){
//        return new User("1","hwh","21231@qq.com","");
//    }
//
//    @Bean("tom")
//    public Role role01(){
//        return new Role("123","Bean管理");
//    }
//    @Bean("zed")
//    public Pet pet(){
//        /**
//         * 在这行代码里，zed组件依赖了user01组件，如果代理模式是true，那这行代码不会报错，反之则会报错
//         *
//         */
//        return new Pet("zed",user01());
//    }
//}
